package com.hehe.Repository;


import com.hehe.POJO.Qq_space;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface QQspaceRepository extends JpaRepository<Qq_space, Long> {

    @Transactional
    @Modifying
    @Query("UPDATE Qq_space q SET q.like_count = q.like_count + :add_minus WHERE q.id = :id")
    Integer updateLikeCountById(Integer add_minus, long id);

    //    SELECT q FROM Qq_space q 是 JPQL 查询语法，
    //    而 limit :start, :end 是 SQL 查询语法。
    //    在使用 @Query 注解时，不能混合使用这两种语法。
    //    如果使用 nativeQuery = true，应该完全使用 SQL 语法。
    //
    //    在 SQL 中，limit 后的参数应该是具体的数字，
    //    而不是命名参数 :start 和 :end。这在 JPQL 中是可以的，
    //    但在原生 SQL 中不支持这种方式
    @Query(nativeQuery = true, value = "SELECT * FROM qq_space order by like_count desc LIMIT ?1, ?2")
    List<Qq_space> findByPage(int start, int end);


    @Modifying
    @Transactional
    @Query("UPDATE Qq_space q SET q.description = ?1 WHERE q.id = ?2")
    void setDescriptionById(String description, Integer id);



//    @Query( "SELECT * FROM SLSNotification s WHERE s.userId = :userId ORDER BY snumber DESC LIMIT 20")
//    List<SLSNotification> getUserIdforManage(@Param("userId") String userId);

    
}
